package com.tbit.uqbike.object.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import com.tbit.common.entity.BaseEntity;
import com.tbit.uqbike.annos.Excel;
import lombok.*;

import java.util.Date;
import java.util.List;

/**
 * 退款日志对象 user_refund_log
 *
 * @author jing
 * @date 2021-05-26
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class UserRefundLog extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 分页条数
     */
    private Long rowCount;

    /**
     * 页数
     */
    private Long pageNO;
    /**
     * 区域id
     */
    private Integer accountId;
    /* 用户id */
    private Integer userId;

    @Excel(name = "姓名")
    private String name;

    @Excel(name = "号码")
    private String phone;

    /**
     * 订单金额
     */
    @Excel(name = "订单金额")
    private Double orderMoney;

    /**
     * 退款金额
     */
    @Excel(name = "退款金额")
    private Double returnMoney;

    /**
     * 业务类型 0余额
     */
    @Excel(name = "业务类型", readConverterExp = "0=余额,1=免押卡,2=骑行卡,3=充值结束订单,4=会员卡,5=优惠券")
    private Integer serviceType;

    /**
     * 0：微信平台
     * 1：支付宝平台
     * 2：汇付平台
     */
    @Excel(name = "平台类型", readConverterExp = "0=微信,1=支付宝,2=汇付平台")
    private Integer platformType;

    /**
     * 商户订单号
     */
    @Excel(name = "商户订单号")
    private String orderNO;

    /**
     * 商户退款订单号
     */
    @Excel(name = "商户退款订单号")
    private String returnOrderNO;

    /**
     * 退款时间
     */
    @Excel(name = "退款时间", width = 30, dateFormat = "yyy-MM-dd HH:mm:ss")
    private Date returnTime;
    /**
     * 充值订单支付时间
     */
    private String payTime;

    private List<Integer> accountIds;
    @Excel(name = "区域名称")
    private String accountName;
    /**
     * 开始时间
     */
    @JSONField(serialize = false)
    private Date startTime;
    /**
     * 结束时间
     */
    @JSONField(serialize = false)
    private Date endTime;

    /**
     * 备注
     */
    private String remark;

    public UserRefundLog(Integer accountId, Integer userId, Integer serviceType, Integer platformType, String orderNO, String returnOrderNO, Date returnTime, Double orderMoney, Double returnMoney, String payTime) {
        this.accountId = accountId;
        this.userId = userId;
        this.serviceType = serviceType;
        this.platformType = platformType;
        this.orderNO = orderNO;
        this.returnOrderNO = returnOrderNO;
        this.returnTime = returnTime;
        this.orderMoney = orderMoney;
        this.returnMoney = returnMoney;
        this.payTime = payTime;
    }
}
